-- lua逻辑：首先判断次数是否大于传入的次数，是则返回当前次数，否则执行+1，当次数为1的时候添加失效时间，后续则不再添加
-- 三个入参：
-- KEYS[1] : 限流的key
-- ARGV[1] : 限流次数的数量
-- ARGV[2] : 限流次数的过期时间
local key = KEYS[1]
local count = tonumber(ARGV[1])
local time = tonumber(ARGV[2])
local current = redis.call('get', key);

if current and tonumber(current) > count then
    return current;  -- 如果当前值大于count，直接返回当前值
end

current = redis.call('incr', key)
if tonumber(current) == 1 then
    redis.call('expire', key, time)
end
return current;  -- 返回递增后的当前值
